package com.apps.java.javanote02;

public class _13多态 {
    /**
     * 多态
     * 	同一个对象，在不同时刻表现出的不同形态。
     * 	一、举例：
     * 		我们可以说猫是猫：猫 cat = new 猫();
     * 		我们也可以说猫是动物：动物 animal = new 猫();
     * 		这里猫在不同的时刻表现出来了不同的形态，这就是多态。
     *
     * 	二、多态的前提和体现
     * 		1.有继承/实现关系
     * 		2.有方法重写
     * 		3.有父（类/接口）的引用指向（子/实现）类对象
     *
     * 	三、多态种成员访问特点
     *		1.成员变量：编译看左边，执行看左边
     *		2.成员方法：编译看左边，执行看右边
     *		为什么成员变量和成员方法的访问不一样呢?	因为成员方法有重写，而成员变量没有重写
     *
     * 	四、多态的好处及弊端
     * 		1.好处：提高了程序的扩展性
     * 			      具体实现：定义方法的时候，使用父类作为参数，将来使用时，使用具体的子类型参与操作。
     * 		2.弊端：不能使用子类的特有功能
     *
     * 	五、多态中的转型
     * 		1.向上转型：从子到父，父类引用指向子类对象
     * 			抽象类 类名 = new 实例化对象类();
     * 			Animal a = new Cat();
     * 		2.向下转型：从父到子，父类引用转为子类对象
     * 			实例化对象类 类名 = (引用类型) 抽象类;
     * 			Cat c = (Cat)a;
     *
     * 	多态的形式：具体类多态、抽象类多态、接口多态。
     */
}
